<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<pre>
			obj---需要定义属性的对象；
			prop---需定义或修改的属性的名字；
			descriptor---将被定义或修改的属性的描述符；			
			在一个对象上定义一个新属性，或者修改一个对象的现有属性， 并返回这个对象。
			configurable
			当且仅当该属性的 configurable 为 true 时，该属性描述符才能够被改变，也能够被删除。默认为 false。
			
			enumerable
			当且仅当该属性的 enumerable 为 true 时，该属性才能够出现在对象的枚举属性中。默认为 false。
			数据描述符同时具有以下可选键值：
			
			value
			该属性对应的值。可以是任何有效的 JavaScript 值（数值，对象，函数等）。默认为 undefined。
			
			writable
			当且仅当该属性的 writable 为 true 时，该属性才能被赋值运算符改变。默认为 false。
			
			get/set		
			用 get 和 set之后就不能用 writable 或 value 中的任何一个。
		</pre>

		<div id="test">这是一个测试</div>
		<script>
			var test = document.getElementById("test");
			var data = {};
			var i = 0;
			Object.defineProperty(data, "b", {
				set: function(newValue) {
					//当data.b的值改变的时候更新＃test的视图 
					test.textContent = newValue;
				},
				get: function() {}
			});
			setInterval(function() {
				i++;
				data["b"] = "data.b的值更新了，视图更新" + i;
			}, 1000);
		</script>
	</body>
</html>
